Distribution of packet ordered multimedia data often requires use of an intermittently unreliable communication channel. For example, radio based wireless communication channels are often subject to radio interference from other radio spectrum emitting devices, while wired network communication channels are prone to network congestion. Both radio interference and network congestion can result in loss of data during transmission.
To compensate for data loss, two major classes of communication protocols are used to communicate data over packet networks. The first class of communication protocols is termed “synchronous”, and uses a fixed delay transmission of packets. To mitigate the effect of channel errors a suitable error correcting code scheme such as Forward Error Control (FEC) coding is often employed. A data message is transformed by an FEC operation into a codeword of bigger size that ensures that if a number of altered components (through transmission error) of a codeword are below some designed threshold, the original data can still be correctly extracted. In effect, FEC provides error resilience by increasing the amount of data to be sent over a communication channel. Such synchronous transmission does not require a return channel, but there is no guarantee that the data will arrive to the receiver without errors.
As an alternative, it is possible to use packet based asynchronous communication protocols that are reliable, but have unbounded delay for packet delivery. Automatic Repeat Request (ARQ) is a popular example of such protocol. It operates by dividing the data into packets and appending a special error check sequence such as a Cyclic Redundancy Check (CRC) code to each packet for error detection purpose. The data packets and error checks are communicated over a channel and the receiver decides whether a transmission error occurred by calculating the check sequence and comparing it to the one it received. If a discrepancy is found the error is declared and the receiver requests the transmitter to resend the packet using the return channel. For each data packet in the forward channel, the receiver transmits either a positive Acknowledgment (ACK) packet or a negative one (NACK). In contrast to the synchronous transmission techniques, ARQ requires a two-way communication channel to be present. Often, the return channel uses the same physical medium as the forward channel. So effectively ARQ also expands the data size because of retransmissions and communication of control information. The difference from the synchronous FEC-based protocols is, however, that ARQ is inherently channel adaptive since only lost packets are resent, while FEC adds overhead to all packets. On the other hand, for some packet networks such as the Internet, ARQ may introduce significant delays due to roundtrip propagation time and processing time, which limit the application of ARQ to real-time multimedia communications.
Unfortunately, conventional synchronous and asynchronous protocols are not well suited for transmitting streaming multimedia data. In real-time applications, multimedia data cannot tolerate unbounded delays. If data for a video frame arrives after its deadline in real-time applications, it has to be discarded. This suggests that common asynchronous protocols are not suited for real-time multimedia. Use of synchronous protocols presents significant difficulties as well. Because of the bandwidth limitations of conventional wireless and wired communication channels, multimedia data is compressed for transmission. Such compressed data cannot tolerate frequent errors in the transmission. In many cases, certain portions of compressed multimedia (headers, important coding information, etc.) data are intolerable to errors at all. This renders synchronous protocols inapplicable for many multimedia communication scenarios.